#pragma once

#include <vulkan/vulkan.hpp>
#include <memory>

#include "Render/VulkanDescriptor/VulkanDescriptorLayout.h"

class CGPURenderTarget;

//store the rectangle widget's pipeline
struct SForegroundMeshPipeline
{
    void Init();
  
    vk::DescriptorSetLayout DescriptorSetLayout;


    struct SAxisItemVertexPushConstant
    {
        float ProjectionView[16];
    };


    std::shared_ptr<CGPURenderTarget>  AxisColorRenderTarget;
    std::shared_ptr<CGPURenderTarget>  AxisDepthRenderTarget;
    vk::Framebuffer  AxisFramebuffer;
    void UpdateFrameBuffer(vk::Extent2D InSize);

    vk::RenderPass AxisRenderPass;
    SVulkanDescriptorLayout AxisDescriptorLayout;
    vk::PipelineLayout AxisPipelineLayout;
    vk::Pipeline AxisPipeline;

protected:

};
